package ai.people.netmon.framework.model.response;

import lombok.ToString;

/**
 * 100000-- 通用错误代码
 * 220000-- 我的日记错误代码
 * 230000-- 我的测评错误代码
 * 240000-- 我的活动错误代码
 * 250000-- 我的分享错误代码
 * 260000-- 我的故事错误代码
 * 270000-- 我的积分错误代码
 * 280000-- 个人中心错误代码
 * 290000-- 我的物流错误代码
 * 300000-- 分销错误代码
 * 310000-- 优惠券错误代码
 * 320000-- 我的客服错误代码
 *
 * @author: Xing.Wei
 * @time: 2020-09-02 10:50
 */

@ToString
public enum CommonCode implements ResultCode {
    FAIL(false, 11111, "操作失败！"),
    FAIL_ADD(false, 11111, "添加失败！"),
    FAIL_UPDATE(false, 11111, "修改失败！"),
    FAIL_DELETE(false, 11111, "删除失败！"),

    SUCCESS(true, 100000, "操作成功！"),
    SUCCESS_LOGIN(true, 100000, "登录成功！"),
    SUCCESS_ADD(true, 100000, "添加成功！"),
    SUCCESS_UPDATE(true, 100000, "修改成功！"),
    SUCCESS_DELETE(true, 100000, "删除成功！"),


    ACCESS_TOKEN_INVALID(false, 10001, "Token无效，请重新获取！"),
    AUTH_NO_LOGIN(false, 10002, "此操作需要登陆系统！"),
    AUTH_NO_PERMISSION(false, 10003, "权限不足，无权操作！"),
    INVALID_PARAM(false, 10004, "非法参数！"),
    METHOD_NOT_SUPPORTED(false, 10005, "请求的方法不支持！"),

    QUERY_NOT_FOUND(true, 10006, "没有查到数据！"),

    AUTH_ACCOUNT_NOT_EMPTY(false, 10006, "账号不能为空！"),
    AUTH_ACCOUNT_ERROR(false, 10007, "输入的账号或者密码有误！"),
    AUTH_ACCOUNT_IP_ERROR(false, 10007, "您的IP没有权限访问，请联系管理员！"),
    AUTH_PWD_NOT_EMPTY(false, 10008, "密码不能为空！"),
    AUTH_PWD_ERROR(false, 10009, "输入密码有误！"),
    AUTH_ACCOUNT_LOCKED(false, 10010, "账号被锁定，请联系管理员！"),
    AUTH_ACCOUNT_TIME_EXPIRY(false, 10010, "您的账号服务已到期，请联系管理员！"),

    CHECK_NOT_EMPTY_PRIMARY_ID(false, 10011, "ID不能为空！"),


    ACCOUNT_EXIST(false, 10010, "账号已存在！"),

    //添加群组
    USER_ADD_TELEGRAM_EXIST(false, 20019, "此用户已存在群组中！"),
    USER_ADD_TELEGRAM_FAIL(false, 20020, "用户添加群组失败！"),
    USER_ADD_TELEGRAM_FULL(false, 20021, "此用户添加群组已经达到上限！"),
    USER_REMOVE_TELEGRAM_NOEXIST(false, 20022, "此用户已经移除！"),
    USER_REMOVE_TELEGRAM_FAIL(false, 20023, "用户退出群组失败！"),

    // 加入分析
    ANALYSIS_GROUP_TARGET_SOURCE_NULL(false, 20024, "该群组来源为空，不支持分析"),
    ANALYSIS_GROUP_TARGET_ID_NULL(false, 20024, "该群组ID为空，不支持分析"),
    ANALYSIS_ACCOUNT_TARGET_SOURCE_NULL(false, 20024, "该账号来源为空，不支持分析"),
    ANALYSIS_ACCOUNT_TARGET_ID_NULL(false, 20024, "该账号ID为空，不支持分析"),
    ANALYSIS_SUBJECT_KEYWORDS_OR_NAME_EXIST(false, 20024, "该主题名称或关键词已存在"),
    ANALYSIS_SUBJECT_KEYWORDS_EXIST(false, 20024, "该主题关键词已存在"),
    ANALYSIS_SUBJECT_NAME_EXIST(false, 20024, "该主题名称已存在"),
    ANALYSIS_ACCOUNT_EXIST(false, 20024, "该账号已加入分析"),
    ANALYSIS_GROUP_EXIST(false, 20025, "该群组已加入分析"),
    ANALYSIS_GROUP_INVALID(false, 20025, "该群组已失效"),

    ADD_GROUP_REACHED_LIMIT(false, 20026, "您添加群组已达上限"),
    ADD_ACCOUNT_REACHED_LIMIT(false, 20026, "您添加账号已达上限"),
    ADD_TOPIC_REACHED_LIMIT(false, 20027, "您添加主题已达上限！"),

    // 新增群组分析
    ADD_GROUP_ANALYSIS_PARAM_ERROR(false, 20028, "参数有误"),
    ADD_GROUP_ANALYSIS_NO_EXIST(false, 20028, "<div>系统中查询...未找到</div><div>Telegram中查找...未找到</div>"),

    // 新增账号分析
    ADD_ACCOUNT_ANALYSIS_PARAM_ERROR(false, 20028, "参数有误"),
    ADD_ACCOUNT_ANALYSIS_NO_EXIST(false, 20028, "该账号不存在"),

    // 服务接口
    SERVICE_KEYWORDS_NOT_EMPTY(false, 20029, "关键词不能为空"),

    UNAUTHENTICATED(false,10001,"此操作需要登陆系统！"),
    UNAUTHORISE(false,10002,"权限不足，无权操作！"),
    IS_EXIST(false, 99995, "已经存在"),

    SERVER_ERROR(false, 999999, "抱歉，系统繁忙，请稍后重试！");

    //    private static ImmutableMap<Integer, CommonCode> codes ;

    //操作是否成功
    boolean success;
    //操作代码
    int code;
    //提示信息
    String message;

    private CommonCode(boolean success, int code, String message) {
        this.success = success;
        this.code = code;
        this.message = message;
    }

    @Override
    public boolean success() {
        return success;
    }

    @Override
    public int code() {
        return code;
    }

    @Override
    public String message() {
        return message;
    }


}
